Conventionally, processor-based electronic systems, such as micro-controllers or microprocessors, require test instrumentation capable of diagnosing and correcting system faults and faulty electronic components. Such conventional diagnostic testers have relied upon the technique of emulating the system's processing unit in order to control the remainder of the system so that a series of diagnostic tests may be conducted, which isolate the system's processing unit from the remainder of the components.
Generally, the technique of emulation performs two basic functions. In isolating the processing unit from the remainder of its system components, it may quickly be determined whether the processing unit itself is faulty, or whether the problem lies in some other component. Second, using an emulator to control the remainder of the system, rather than the system's processing unit, allows the diagnostic tester much more flexibility in exercising the remaining components of the system, which might not otherwise be possible. This is due to the fact that a processing unit in the system largely depends upon other system components in order to execute programs, and it is very likely that one or more of these other components could be the source of the problem. The diagnostic test routines can effectively remove these components from the system selectively, or exercise these components from the processing unit's emulator in such a way that their functions are isolated from one another so that diagnosis of the system may proceed in an orderly fashion.
The problem with such conventional testers is, however, that they are expensive. A diagnostic tester emulating a processing unit is unique to the particular processor unit used in the device under test (DUT). Since there are a large variety of different processors, as well as micro-controllers, currently in use in various types of systems, it can be very expensive to acquire a plurality of testers, one for each type of processing unit. These customized testers also require the use of complex circuits, which contribute to the overall cost.
Additionally, such conventional testers may require a special in-circuit emulation (“ICE”) chip with lots of glue circuitry. Such ICE chips need to be customized as they are not product chips, adding to the overall cost of such testers. Finally, such conventional testers usually end up becoming quite a bulky piece of electronic equipment, due to the complicated electronics and wiring needed. Such bulkiness makes it cumbersome for the test engineers to move the board around, or use it outside of the lab.
Therefore, it is desirable to provide a low-cost debugging system without the conventional ICE-based debugging system. Such debugging system should be able to cooperate with a ROM/RAM emulator, as well as use production chips to access external memory. Finally, it is desirable to provide a debugging system that can be built with lower cost, and yet remain portable for in-lab or on-the-road usage.